iT邦幫忙

2023 iThome 鐵人賽

DAY 11
0
自我挑戰組

從0到有學習JavaScript系列 第 11

第三章 型別、值和變數-問題筆記 String part2

  • 分享至 

  • xImage
  •  

問題一、字串indexOf用法?
(一)概念一、indexOf 搜尋字串-特定索引值
除了陣列可以用indexOf之外,字串也可以

let s = "Hello, world";
s.indexOf("l");          //2    若indexOf接一個字串,表示第一個"l"出現的位置

以陣列來看,也是同樣用法

const a = ['ant', 'bison', 'camel', 'duck', 'bison'];
a.indexOf("bison");  //1

(二)概念二、indexOf 搜尋字串-範圍

let s = "Hello, world";
s.indexOf("l",3);      //3    包含索引值為3或以後"l"的位置
const a = ['ant', 'bison', 'camel', 'duck', 'bison'];
a.indexOf("bison", 3);        //4   包含索引值為4或以後"bison"的位置

(三)概念三、如果該陣列或字串沒有要搜尋的字,結果為-1

let s = "Hello, world";
s.indexOf("y");         //-1
const a = ['ant', 'bison', 'camel', 'duck', 'bison'];
a.indexOf("apple");    //-1

(四)概念四、lastindexOf 搜尋最後一個字串的索引值

lastindexOf("l");      //10   最後一個字母l的位置

在陣列中lastindexOf 是沒有這種用法的喔!

問題二、用 Boolean 搜尋字串的方式?

let s = "Hello, world";
s.includes("H");        //true
const pets = ['cat', 'dog', 'bat'];
pets.includes("cat");      //true
pets.includes("at");       //false  陣列內單字不能拆分尋找

includes() 方法中,值為0的所有元素都被視為相等,不考慮符號。也就是说,-0 等于 0,但 false 不被視為等于於0。

let a = [0, 1, 2, 3];
a.includes(-0);       //true  表示在includes中,0和 -0是一樣的。

NaN 也可以被includes 尋找到

[1, 2, NaN].includes(NaN);   //true

如果以範圍來搜尋「陣列」內的值,若完全沒有這個值,結果會是Boolean(false)

[1, 2, 3, NaN].includes(4, 100);    //包含索引值100以及100之後,有沒有4這個數字?
//false   因為已經超出陣列範圍

呈上題,字串也可以這樣用喔!

let s = "Hello, world";
s.includes("e", 100);     //false

Reference
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/indexOf


上一篇
第三章 型別、值和變數-問題筆記 String
下一篇
第三章 型別、值和變數-問題筆記 replace
系列文
從0到有學習JavaScript31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言